package com.fowo.api.model.tmp.settlement.report;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 亚马逊结算中心-交易明细临时表 导入导出辅助模型 */
@Getter
@Setter
public class TmpSettlementReportExcelPo {

  @Size(max = 50, message = "Settlement ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "Settlement ID")
  private String settlementId;

  @Size(max = 50, message = "结算开始日期长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "结算开始日期")
  private java.util.Date settlementStartDate;

  @Size(max = 50, message = "结算结束日期长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "结算结束日期")
  private java.util.Date settlementEndDate;

  @Size(max = 50, message = "存款日期长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "存款日期")
  private java.util.Date depositDate;

  @Size(max = 50, message = "货币长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货币")
  private String currency;

  @Size(max = 50, message = "交易类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "交易类型")
  private String transactionType;

  @Size(max = 50, message = "订单编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单编号")
  private String orderId;

  @Size(max = 50, message = "卖家订单编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "卖家订单编号")
  private String merchantOrderId;

  @Size(max = 50, message = "盘点编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "盘点编号")
  private String adjustmentId;

  @Size(max = 50, message = "货件编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货件编号")
  private String shipmentId;

  @Size(max = 50, message = "商城名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商城名称")
  private String marketplaceName;

  @Size(max = 50, message = "金额类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "金额类型")
  private String amountType;

  @Size(max = 500, message = "金额描述长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "金额描述")
  private String amountDescription;

  @Size(max = 50, message = "金额长度不能超过20")
  @ExcelProperty(value = "金额")
  private java.math.BigDecimal amount;

  @Size(max = 50, message = "配送类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送类型")
  private String fulfillmentId;

  @Size(max = 50, message = "发布日期长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "发布日期")
  private java.util.Date postedDate;

  @Size(max = 50, message = "发布日期时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "发布日期时间")
  private java.util.Date postedDateTime;

  @Size(max = 50, message = "订单商品编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单商品编号")
  private String orderItemCode;

  @Size(max = 50, message = "卖家订单商品编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "卖家订单商品编号")
  private String merchantOrderItemId;

  @Size(max = 50, message = "卖家盘点商品编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "卖家盘点商品编号")
  private String merchantAdjustmentItemId;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSKU")
  private String msku;

  @Size(max = 50, message = "购买数量长度不能超过20")
  @ExcelProperty(value = "购买数量")
  private Integer quantityPurchased;

  @ExcelProperty(value = "店铺")
  private Long sid;

  @Size(max = 100, message = "来源长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "来源")
  private String eventType;

  @Size(max = 50, message = "报告类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "报告类型")
  private String accountType;

  @Size(max = 500, message = "财务事件组id长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "财务事件组id")
  private String financialEventGroupId;

  @Size(max = 50, message = "结算状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "结算状态")
  private String processingStatus;

  @Size(max = 50, message = "转账状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "转账状态")
  private String fundTransferStatus;

  @Size(max = 50, message = "结算编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "结算编号")
  private String financialNo;

  @Size(max = 50, message = "店铺名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺名")
  private String storeName;

  @Size(max = 50, message = "亚马逊店铺id长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "亚马逊店铺id")
  private String sellerId;

  @Size(max = 50, message = "国家长度不能超过20")
  @ExcelProperty(value = "国家")
  private Long countryCode;
}
